home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / artemis1 / src / makepat3.awk < prev    next >
Encoding:
AWK Script  |  1993-09-05  |  1.1 KB  |  50 lines

  1. # ARTemis の6×6ドット パターン文字列出力を
  2. # 文字フォントデータとしてputpict(pict.c) 用データに変換する
  3. #
  4. #static char    pic_zero[] = {
  5. #    0xfe,5,6, COL_menuString,  0x30,0x68,0xc8,0xc8,0xc8,0x70,  0xff
  6. #};
  7.  
  8. BEGIN {
  9.     colmenu = sprintf("%04x", 19*1024 + 19*32 + 22)
  10.     colmenu2 = sprintf("%04x", 24*1024 + 24*32 + 24)
  11.     colwhite = sprintf("%04x", 31*1024 + 31*32 + 31)
  12.     colblack = sprintf("%04x", 0)
  13.     RS = ""
  14.     FS = "[ \t\n]"
  15.     patxlen = 6
  16.     patylen = 6
  17. }
  18.  
  19. {
  20.     printf("/* record %d: %d fields */\n", NR, NF)
  21.     printf("static char pic_XXXX[] = {\n");
  22.     printf("\t0xfe,\n");
  23.     xbytes = int((patxlen + 7) / 8)
  24.     for (i=0; i<8; i++)
  25.         bit[i] = 2 ^ (7-i);
  26.     for (i=0; i<xbytes*12; i++)
  27.     {
  28.         black[i] = 0;
  29.     }
  30.     for (y=0; y<patylen; y++)
  31.     {
  32.         for (x=0; x<patxlen; x++)
  33.         {
  34.             field = $(1+patxlen*y+x)
  35.             idx = xbytes * y + int(x/8)
  36.             if (field == colwhite)
  37.             {
  38.                 black[idx] += bit[x%8];
  39.             }
  40.         }
  41.     }
  42.     printf("\t%d,%d, Black,\n\t", patxlen,patylen);
  43.     for (i=0; i<xbytes*patylen; i++)
  44.     {
  45.         printf("0x%02x,", black[i]);
  46.         if ((i+1)%patxlen == 0)         printf("\n\t");
  47.     }
  48.     printf("0xff\n};\n\n");
  49. }
  50.